An analog-to-digital converter (ADC) converts an analog input signal (e.g., a voltage) to a digital output signal (also termed a “digital code” or simply a “code”). An ADC uniquely represents all analog inputs within a certain range by a limited number of digital output codes. Since the analog scale is continuous, while the digital code scale is discrete, there is a quantization process that introduces an error. That is, a small range of analog voltages will be resolved by the ADC to the same digital output code. As a result, a plot of analog input voltage versus digital output code has a stair step shape. The width of one step is defined as one least significant bit (LSB) and is often used as the reference unit for other quantities or units of the full analog range. For example, one-half LSB represents an analog quantity equal to one-half of the analog resolution.
Various types of errors exist in ADCs. Examples of such errors include offset error, gain error, differential nonlinearity (DNL) error, integral nonlinearity (INL) error, absolute accuracy error, and aperture error. Because an analog voltage is a continuous signal and a digital code is a discrete value, the relationship between digital output codes of an ADC and an analog input voltage has a stair step shape. For a digital-to-analog converter (DAC), analog output voltages are determined based on digital input codes resulting in step increases in voltage from one digital code to the next. The width of each step for an ADC is a function of the resolution of the ADC as well as component mismatches internal to the ADC. The DNL error refers to the difference between an actual step width between successive digital codes and the step width of an ideal ADC (or difference between step heights between an actual and ideal DAC). The step width of an ideal ADC may be referred to as “1 LSB.” DNL error may be expressed in units of LSB. For example, a +½ LSB DNL error means that the step width is 50% larger than the ideal ADC step width.
INL error represents the deviation of the values on the actual transfer function from, in some representations, a straight line. The summation of the differential nonlinearities from bottom up to a particular step determines the value of the INL at that step. A plot of INL errors over the various digital codes may show sharp jumps in the INL errors between certain adjacent digital codes, referred to as “MSB (most significant bit) jumps.”
While the relationship between the analog input and the digital output codes is linear for an ideal ADC, unfortunately DNL and INL errors result in a non-linear relationship between the analog input and the digital output codes.